ReportHTML 1.4.1.1, Cmdlets Usage, Help & Examples

Report created on Jan 3, 2019 12:24 PM
Why we wrote this PowerShell is an amazing tool for gathering, collecting, slicing, grouping, filtering and collating data. However, trying to show that information or several sets of it on one report is not as easy. A few years we ago built our own solution, we created a set of HTML reporting functions. I have been using these functions for years to help myself, my team and customers to deliver Powershell data to people that just need the details and not a CSV file or a code snippet. We’ve now decided to make these available to the rest of you.
Original Credits This code was originally borrowed from Alan Renouf for a vSphere healthcheck report by Andrew Storrs and myself for a more dynamic reporting style, being able to create reports on the fly with minimal effort.
Recent Credits Jennifier Han, Giovanni Fleres, Chris Speers, Keith Ellis, Blake and Moep
Running Reports These reports, once built can be scheduled to run, dropped on a file share emailed or saved to an Azure Storage Blob.
This Help Report Will walk through several examples of how to use the functions to generate different types of reports.
Beta Help File Please note this help is in a draft state
PowerShell Gallery Add A Comment on powershell gallery
Github Write some code, branch it, merge it, Join me and lets hack and slash together.
Log Issue Log an Issue
Chart Tool If you want to see how to construct charts in ChartJS this is so helpful Https://codepen.io/natenorberg/pen/WwqRar/
1.4.1.0 for the 5000 non unique downloads, I have reopened the code and added Stack Bar Chart and removed help prompt. Other development ideas or suggestions are welcome.
1.4.0.3 can't remember, think it was clean up fixes etc
1.4.0.1 introduced Get-HTMLDataTable fucntion to consume HTML 5 Data tables features. Included additional java scripts and CSS styles
1.3.2.2 Added Custom footer text to Get-HTMLPageClose -FooterText 'Your text here'.
Created Functions for Heading Get-HTMLHeading, added CSS H1 to H7.
Added PowerShell Logo, usage 'PowerShell' in get-HTMLPageOpen
1.3.2.1 Updated 'Corporate' Logo and 'Alternate' logo files
1.3.2.0 Added dynamic columns function Get-HTMLColumnOpen.
Example Usage 'Get-HTMLColumnOpen -ColumnNumber 1 -ColumnCount 2'
1.3.1.1 minor fixes
1.3.1.0 Sleeps removed from module, Axis Labels added to bar chart, few logic errors corrected.
Added Get-HTMLContentTableAadvanced
1.3.0.7 Added This Change Log
1.3.0.6 Added Totals to get-HTMLContentTable and associated help content
1.3.0.5 another fix to save-HTMLReport so it can handle a null reportpath.
Moved Html Help file logic to a nested psm1 file.
In addition to Creating ReportHTMLHelpers to start building more reports this module
was updated in conjunction with publishing Run-ReportAzureRBAC
1.3.0.4 Minor Fixes, Major addition a Help Report. run Get-HTMLReportHelp
1.3.0.1 Changes to allow for more flexible customization, use Chart JS for charting, working in Azure Automation and
now support HTML5 Tabs
1.3.0.0 Awesome changes here for flexibility with CSS, Logos, Chart creation and more. Hopefully there will be less
major changes from here once legacy cmdlets are removed. Feedback always welcome
1.2.0.3 Changes to add functionality for Custom CSS files and changed export to be HTML file type. The CSS and
Javascript files are now present in the module directory allowing for ease of manipulation
and customization. Get-HTMLOpen and Get-HTMLClose still present in module but
can be replaced with Get-HTMLOpenPage and Get-HTMLClosePage.
1.2.0.1 Changes (non Breaking) to add functionality for Custom CSS files and changed export to be HTML file type.
Get-HTMLOpen and Get-HTMLClose still present in module but can be replaced with
Get-HTMLOpenPage and Get-HTMLClosePage.
10.0.0.15 Thanks to Moep for fix to table row color with default values.
1.0.0.14 Added Bar chart function and -testchart switch
1.0.0.12 fixed HTML Close working on charting options
1.0.0.11 fixed HTML Close.

Creating headings Get-HTMLHeading -headerSize 1 -headingText 'This is heading 1'
Heading Tag 1
 $rpt += Get-HTMLHeading -headerSize 1 -headingText "This is heading 1" 
Heading Tag 2
 $rpt += Get-HTMLHeading -headerSize 2 -headingText "This is heading 2" 
Heading Tag 3
 $rpt += Get-HTMLHeading -headerSize 3 -headingText "This is heading 3" 
Heading Tag 4
 $rpt += Get-HTMLHeading -headerSize 4 -headingText "This is heading 4" 
Heading Tag 5
 $rpt += Get-HTMLHeading -headerSize 5 -headingText "This is heading 5" 
Heading Tag 6
 $rpt += Get-HTMLHeading -headerSize 6 -headingText "This is heading 6" 

This is heading 1

This is heading 2

This is heading 3

This is heading 4

This is heading 5
This is heading 6

Functions Each function return HTML code, the parameters you send in will be return with HTML code.
Building an Array To build a report create an array object and add parts of your report together.
Eg, create an array variable $Rpt = @()
Next add to the array.
$RPT += get-htmlpageopen -title "Welcome"
Open / Close Although these functions help you with HTML its still HTML. HTML uses tags and everything you open you must close
Get-HTMLContentOpen -HeaderText, creates a section header. You can then add other functions and code. However you must eventually add get-HTMLContentClose.
Using Indenting is an easy way to keep track of what tag your in.
Saving Reports The Array need to be saved to a file, there are a couple of options for this.
You can save the array to a file using set-content.
$rpt | set-content -path "c:\temp\MyReport.html"
You can use the Save-HTMLReport Function. There is also a save to storage azure blob option
Building Report Code
 $rpt = @()
$rpt += Get-HTMLOpenPage -TitleText "ReportHTML" 
	$rpt += Get-HTMLContentOpen 
		$rpt += Get-HTMLContentText -Heading "Header" -Detail "Detailed Information" 
	$rpt += Get-HTMLContentClose 
$rpt += Get-HTMLClosePage  
Custom Report Footer
 $rpt += Get-HTMLClosePage -FooterText "Enter Your Custom Text Here" 
Saving a Report - Write Array to file
 $rpt | set-content -path "c:\temp\MyReport.html"  
Set-Content -Value $rpt -path "c:\temp\MyReport.html"  
Invoke-item "c:\temp\MyReport.html" 
Saving a Report - Use the builtin function (1 Liner Options)
 Save-HTMLReport -Reportcontent $rpt -ReportPath c:\temp -ReportName "MyReport" -showreport
Save-HTMLReport -Reportcontent $rpt -ReportPath c:\temp -ReportName "MyReport.html" 
Save-HTMLReport -Reportcontent $rpt -ReportPath c:\temp -ReportName "MyReport" 
Save-HTMLReport -ShowReport 
$SavedFile = Save-HTMLReport -ShowReport  
Saving a Report - Save To Azure Storage Blob
 Save-HTMLToBlobStorage -Needs an Azure Account #More to come 
ReportHTML
ReportHTML

Report created on Jan 3, 2019 12:24 PM
Header Detailed Information

Mixed and Match You can use the following parameters in a mix and match format
-LeftLogoName These switch will load logos to the top left of the report from JPG files saved in the module directory. There are 4 image files in the module for examples 'Alternate','Blank','Sample' and 'Corporate' (this uses Get-HTMLLogos)
-RightLogoName These switch will load logos to the top of the report right from JPG files saved in the module directory. There are 4 image files in the module for examples 'Alternate','Blank','Sample' and 'Corporate' (this uses Get-HTMLLogos)
-LeftLogoString You can eith use a URL reference here, or Base 64 encoded string
-RightLogoString You can eith use a URL reference here, or Base 64 encoded string
-hidelogos Remove the header
-LogoPath Use in conjunction with LeftLogoName and RightLogo Name. Specify the File Name in the directory
Load Images from Files
 Get-HTMLOpenPage -TitleText "Example 1" -LeftLogoName Corporate -RightLogoName Alternate 
Example 1
Example 1

Report created on Jan 3, 2019 12:24 PM
Load Images from Files
 Get-HTMLOpenPage -TitleText "Example 2" -LeftLogoName Blank -RightLogoName Sample 
Example 2
Example 2

Report created on Jan 3, 2019 12:24 PM
Load Images from a URL
 Get-HTMLOpenPage -TitleText "Example 1" -LeftLogoString "https://azurefieldnotesblog.blob.core.windows.net/wp-content/2016/07/powershell.jpg" ` 
-RightLogoString "https://azurefieldnotesblog.blob.core.windows.net/wp-content/2016/07/datacenter.jpg"
Example 3
Example 3

Report created on Jan 3, 2019 12:24 PM
Use Base 64 code
 $OurLogos = Get-HTMLLogos 
$YourLogos = get-htmlLogos -LogoPath c:\YourPath\
$Base64Logo = $OurLogos.get_item("PowerShell")
Get-HTMLOpenPage -TitleText "Example 4" -LeftLogoName Blank -RightLogoString $Base64Logo
Base64 String data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QBGRXhpZgAATU0AKgAAAAgABAESAAMAAAABAAEAAFEQAAEAA....and so on and so on
Example 4
Example 4

Report created on Jan 3, 2019 12:24 PM
We dont need no stinking logos!
 Get-HTMLOpenPage -TitleText "Example 5" -HideLogos 
Use a Logo Path
 Get-HTMLOpenPage -LogoPath "C:\path\" -LeftLogoName "NameOfFileInPath" -RightLogoName Blank 

Customzie the Look All style is in a CSS file so if you want to change it, you can
Sample Style This is just an example when you use get-htmlopenpage use the CSSName switch
use the name of the css style sheet in the directory
Usage Style Sheets are best best used in conjuction with New-HTMLReportOptions from a custom local directory
Code
 $rpt += Get-HTMLOpenPage -CSSName Sample
$rpt += Get-HTMLContentOpen "Orange"
$rpt += Get-HTMLContentText -Heading "Sample Style" -Detail "whooo, coool."
$rpt += Get-HTMLContentClose
$rpt += Get-HTMLClosePage
Save-HTMLReport -ReportContent $rpt -ShowReport 

Creating Options You can saver the options from the Module directory locally and modify them.
for instance your logo files, css styles and even graph colour schemes
Code
 $MyPath  ='C:\temp\Custom'
if ((Test-Path $MyPath ) -eq $false) {New-Item -ItemType	Directory -Path $mypath}
New-HTMLReportOptions -SaveOptionsPath $MyPath 
$Options = new-HTMLReportOptions -CSSPath c:\temp\ -cssname sample -ColorSchemePath c:\temp\ -LogoPath c:\temp\
$Rpt = @()
$Rpt += get-htmlopenpage -TitleText "External Options" -Options $Options
$Rpt += Get-HTMLContentOpen
$Rpt += Get-HTMLContenttext -Heading "this is custom" -Detail "nice"
$Rpt += Get-HTMLContentClose
$Rpt += Get-HTMLClosePage
Save-HTMLReport -ReportContent $rpt -ShowReport 

Tabs If you are here, you already know what tabs are. Here is the code
Code
 $tabarray = @('Sample1','Sample2','Sample3','Sample4')
$rpt = @()
$rpt += Get-HTMLOpenPage -TitleText 'Tab Test' 
$rpt += Get-HTMLTabHeader -TabNames $tabarray 
foreach ($tab in $tabarray ){
	$rpt += get-htmltabcontentopen -TabName $tab -tabheading ($tab + ' this is your tab' )
		$rpt += Get-HTMLContentText -Heading "$tab" -Detail "$tab" 
	$rpt += get-htmltabcontentclose
}
$rpt += Get-HTMLClosePage
Save-HTMLReport -ReportContent $rpt -ShowReport 
Sample1 this is your tab
Sample1 Sample1

Sample2 this is your tab
Sample2 Sample2

Sample3 this is your tab
Sample3 Sample3

Sample4 this is your tab
Sample4 Sample4

Example
 $rpt += Get-HTMLContentOpen -HeaderText "Welcome to your content" 
	$rpt += Get-HTMLContentText -Heading "This is simple content open" -Detail "Every time you use get-htmlContentopen you need to use Get-HTMLContentClose " 
$rpt += Get-HTMLContentClose  
This is simple content open Every time you use get-htmlContentopen you need to use Get-HTMLContentClose
Example
 $process = Get-Process | select -First 10
$rpt += Get-HTMLContentOpen -HeaderText "Hiding content" -IsHidden 
	$rpt += Get-HTMLContentTable $process 
$rpt += Get-HTMLContentClose  
Example
 $process = Get-Process | select -First 10
$rpt= @()
$rpt+= Get-HTMLContentOpen -HeaderText "Background Shade level 5" -BackgroundShade 5
	$rpt+= Get-HTMLContentOpen -HeaderText "Background Shade level 4" -BackgroundShade 4
		$rpt+= Get-HTMLContentOpen -HeaderText "Background Shade level 3" -BackgroundShade 3
			$rpt+= Get-HTMLContentOpen -HeaderText "Background Shade level 2" -BackgroundShade 2
				$rpt+= Get-HTMLContentOpen -HeaderText "Background Shade level 1" -BackgroundShade 1
					$rpt+= Get-HTMLContentTable ($process | Select -First 5)
				$rpt+= Get-HTMLContentClose
			$rpt+= Get-HTMLContentClose
		$rpt+= Get-HTMLContentClose
	$rpt+= Get-HTMLContentClose
$rpt+= Get-HTMLContentClose 
NameIdPriorityClassHandlesFileVersionWorkingSetPrivateMemorySizePagedMemorySize
AdminService5308Normal39910.0.10011.1638423674881162444811624448
Adobe CEF Helper14168Idle4774.7.0.40033083392110997504110997504
Adobe Desktop Service16364Normal14034.7.0.40064102400276819968276819968
Adobe Premiere Pro57968Normal1219313.0.2.3853174272-1391063040-1391063040
AdobeIPCBroker18948Normal2785.4.0.57445235265617926561792

Example
 $rpt += Get-HTMLContentOpen -HeaderText "Two Column Sample"
	$rpt += Get-HTMLColumnOpen -ColumnNumber 1 -ColumnCount 2
	$rpt += Get-HTMLContentText -Heading "data" -Detail "here"
	$rpt += Get-HTMLColumnClose
	$rpt += Get-HTMLColumnOpen -ColumnNumber 2 -ColumnCount 2
	$rpt += Get-HTMLContentText -Heading "data" -Detail "There"
	$rpt += Get-HTMLColumnClose
$rpt += Get-HTMLContentclose

$rpt += Get-HTMLContentOpen -HeaderText "Three Column Sample"
	$rpt += Get-HTMLColumnOpen -ColumnNumber 1 -ColumnCount 3
	$rpt += Get-HTMLContentText -Heading "data" -Detail "here"
	$rpt += Get-HTMLColumnClose
	$rpt += Get-HTMLColumnOpen -ColumnNumber 2 -ColumnCount 3
	$rpt += Get-HTMLContentText -Heading "data" -Detail "There"
	$rpt += Get-HTMLColumnClose
	$rpt += Get-HTMLColumnOpen -ColumnNumber 3 -ColumnCount 3
	$rpt += Get-HTMLContentText -Heading "data" -Detail "over"
	$rpt += Get-HTMLColumnClose
$rpt += Get-HTMLContentclose

$rpt += Get-HTMLContentOpen -HeaderText "Four Column Sample"
	$rpt += Get-HTMLColumnOpen -ColumnNumber 1 -ColumnCount 4
	$rpt += Get-HTMLContentText -Heading "data" -Detail "here"
	$rpt += Get-HTMLColumnClose
	$rpt += Get-HTMLColumnOpen -ColumnNumber 2 -ColumnCount 4
	$rpt += Get-HTMLContentText -Heading "data" -Detail "There"
	$rpt += Get-HTMLColumnClose
	$rpt += Get-HTMLColumnOpen -ColumnNumber 3 -ColumnCount 4
	$rpt += Get-HTMLContentText -Heading "data" -Detail "over"
	$rpt += Get-HTMLColumnClose
	$rpt += Get-HTMLColumnOpen -ColumnNumber 4 -ColumnCount 4
	$rpt += Get-HTMLContentText -Heading "data" -Detail "where"
	$rpt += Get-HTMLColumnClose
$rpt += Get-HTMLContentclose

$rpt += Get-HTMLContentOpen -HeaderText "Five Column Sample"
	$rpt += Get-HTMLColumnOpen -ColumnNumber 1 -ColumnCount 5
	$rpt += Get-HTMLContentText -Heading "data" -Detail "here"
	$rpt += Get-HTMLColumnClose
	$rpt += Get-HTMLColumnOpen -ColumnNumber 2 -ColumnCount 5
	$rpt += Get-HTMLContentText -Heading "data" -Detail "There"
	$rpt += Get-HTMLColumnClose
	$rpt += Get-HTMLColumnOpen -ColumnNumber 3 -ColumnCount 5
	$rpt += Get-HTMLContentText -Heading "data" -Detail "over"
	$rpt += Get-HTMLColumnClose
	$rpt += Get-HTMLColumnOpen -ColumnNumber 4 -ColumnCount 5
	$rpt += Get-HTMLContentText -Heading "data" -Detail "where"
	$rpt += Get-HTMLColumnClose
	$rpt += Get-HTMLColumnOpen -ColumnNumber 5 -ColumnCount 5
	$rpt += Get-HTMLContentText -Heading "data" -Detail "why"
	$rpt += Get-HTMLColumnClose
$rpt += Get-HTMLContentclose 
data here
data there
data here
data there
data over
data here
data there
data over
data where
data here
data there
data over
data where
data why
Example
 $MyProcesses= get-process | select Name,Id,PriorityClass,PagedMemorySize
$rpt= @()
$rpt+= Get-HtmlContentOpen -BackgroundShade 3 -HeaderText "Top and Bottom 5 Process"
	$rpt+= get-HtmlColumn1of2
		$rpt+= Get-HtmlContentOpen -BackgroundShade 2 -HeaderText 'Bottom 5 Process by Paged Memory'
			$rpt+= Get-HtmlContentTable  ($MyProcesses  | sort PagedMemorySize | select -First 5) 
		$rpt+= Get-HtmlContentClose
	$rpt+= get-htmlColumnClose
	$rpt+= get-htmlColumn2of2
		$rpt+= Get-HtmlContentOpen -BackgroundShade 2 -HeaderText 'Top 5 Process by Paged Memory'
			$rpt+= Get-HtmlContentTable  ($MyProcesses | sort PagedMemorySize | select -last 5) 
		$rpt+= Get-HtmlContentClose
	$rpt+= get-htmlColumnClose
$rpt+= Get-HtmlContentClose 
NameIdPriorityClassHandlesFileVersion
AdminService5308Normal39910.0.10011.16384
svchost2056Normal16910.0.17134.1 (WinBuild.160101.0800)
svchost2032Normal43810.0.17134.1 (WinBuild.160101.0800)
svchost2020Normal15210.0.17134.1 (WinBuild.160101.0800)
svchost1952Normal47110.0.17134.1 (WinBuild.160101.0800)
NameIdPriorityClassHandlesFileVersion
csrss852760
csrss5561077
Creative Cloud18392Normal8624.7.0.400
DeliveryService20728Normal6393.5.1004
WUDFHost1448Normal124510.0.17134.1 (WinBuild.160101.0800)

Sortable Headers Simple Tables are sortable click the header
No Sortable Headers to remove sort from non grouped tables use -NoSortableHeader
Code
 $SampleList = get-process | select Name,Id,PriorityClass,PagedMemorySize,PrivateMemorySize,VirtualMemorySize -First 10 
$rpt= @() 
$rpt+= Get-HtmlContentOpen -HeaderText "Processes"
	$rpt+= Get-HtmlContentTable $SampleList 
$rpt+= Get-HtmlContentClose  
NameIdPriorityClassHandlesFileVersionWorkingSetPrivateMemorySizePagedMemorySize
AdminService5308Normal39910.0.10011.1638423674881162444811624448
Adobe CEF Helper14168Idle4774.7.0.40033083392110997504110997504
Adobe Desktop Service16364Normal14034.7.0.40064102400276819968276819968
Adobe Premiere Pro57968Normal1219313.0.2.3853174272-1391063040-1391063040
AdobeIPCBroker18948Normal2785.4.0.57445235265617926561792
AdobeUpdateService5368Normal2114.7.0.400145408022282242228224
aesm_service4028Normal1732.0.101.44237179404826214402621440
AGMService5316Normal2026.2.0.190357580835512323551232
AGSService5332Normal3486.2.0.190753254451159045115904
ApplicationFrameHost21156Normal51610.0.17134.1 (WinBuild.160101.0800)174571523888742438887424
Using Expressions If you want to rename your column header or use calculated columns you can use expressions.
@{Name="Virtual Memory Size";Expression={$_.VirtualMemorySize / 1Kb }
Code
 $SampleList = get-process 
$rpt= @()
$rpt+= Get-HtmlContentOpen -HeaderText "Processes" 
	$rpt+= Get-HtmlContentTable $SampleList 
$rpt+= Get-HtmlContentClose 
NameIdPriorityClassHandlesFileVersionWorkingSetPrivateMemorySizePagedMemorySize
Normal
AdminService530839910.0.10011.1638423674881162444811624448
Adobe Desktop Service1636414034.7.0.40064102400276819968276819968
Adobe Premiere Pro579681219313.0.2.3853174272-1391063040-1391063040
AdobeIPCBroker189482785.4.0.57445235265617926561792
AdobeUpdateService53682114.7.0.400145408022282242228224
aesm_service40281732.0.101.44237179404826214402621440
AGMService53162026.2.0.190357580835512323551232
AGSService53323486.2.0.190753254451159045115904
ApplicationFrameHost2115651610.0.17134.1 (WinBuild.160101.0800)174571523888742438887424
armsvc52921491.824.29.864483968014131201413120
atieclxx509234076.14.11.129062750726534348865343488
atiesrxx26641696.14.11.129091750414622721462272
atiw210641935.2.7.93178585648046084804608
audiodg1442816410.0.17134.1 (WinBuild.160101.0800)1170636864552966455296
Calculator3827650510.1811.1811.20001165109761591296015912960
CCLibrary13612573.0.13.7348160667648667648
CCXProcess20284572.5.2.11352256667648667648
CEPHtmlEngine108006399.2.1178176001309900813099008
CEPHtmlEngine434244659.2.1101335044510515245105152
Idle
Adobe CEF Helper141684774.7.0.40033083392110997504110997504
Column Width Sometimes you may be display data and the column will dynamically shift. You can use the -fixed switch
Code
 $SampleList3 = get-process
$rpt = @()
$rpt += Get-HtmlContentOpen -HeaderText "Processes, 2 fixed table one not."
$rpt += Get-HtmlContentTable -ArrayOfObjects ($SampleList3 | select -first 4) -Fixed
$rpt += Get-HTMLContentText -Heading ' ' -Detail ' '
$rpt += Get-HtmlContentTable -ArrayOfObjects ($SampleList3 | select -last 4) -Fixed
$rpt += Get-HtmlContentClose 
NameIdPriorityClassHandlesFileVersionWorkingSetPrivateMemorySizePagedMemorySize
AdminService5308Normal39910.0.10011.1638423674881162444811624448
Adobe CEF Helper14168Idle4774.7.0.40033083392110997504110997504
Adobe Desktop Service16364Normal14034.7.0.40064102400276819968276819968
Adobe Premiere Pro57968Normal1219313.0.2.3853174272-1391063040-1391063040
NameIdPriorityClassHandlesFileVersionWorkingSetPrivateMemorySizePagedMemorySize
WavesSysSvc646044Normal2211.9.29.0141312042434564243456
wininit28415161849614049281404928
winlogon1544High26610.0.17134.1 (WinBuild.160101.0800)378060841656324165632
winwfpmonitor1580Normal1955.1.37.7258129843230760963076096
WmiPrvSE4472Normal44310.0.17134.1 (WinBuild.160101.0800)380149764057497640574976
WmiPrvSE15784Normal26510.0.17134.1 (WinBuild.160101.0800)1121075286343688634368
WUDFHost1220High33410.0.17134.1 (WinBuild.160101.0800)657408092160009216000
WUDFHost1448Normal124510.0.17134.1 (WinBuild.160101.0800)63160321911603219116032
Tables Totals Want to add count, Avg or Sum to the bottom of a table. These three array variables expect a header from the arrayofobjects.
Code
 $arrayofobjects = Get-Process | select Name, Handles ,WorkingSet ,PagedMemorySize ,PrivateMemorySize 
$rpt = @()
$rpt += Get-HTMLOpenPage 
$rpt += Get-HtmlContentOpen -HeaderText "Processes, Table Footer with Sum, Count and Average
$rpt += Get-HTMLContentTable $arrayofobjects  -ColumnTotals WorkingSet, PagedMemorySize   -columnCounts Handles,Name -columnAverages PrivateMemorySize  
$rpt += Get-HtmlContentClose
$rpt += Get-HTMLClosePage
Save-HTMLReport -ReportContent $rpt -ShowReport 
NameHandlesWorkingSetPagedMemorySizePrivateMemorySize
AdminService39923674881162444811624448
Adobe CEF Helper47733083392110997504110997504
Adobe Desktop Service140364102400276819968276819968
Adobe Premiere Pro1219353174272-1391063040-1391063040
AdobeIPCBroker278445235265617926561792
count:5count:5sum:157179904sum:-985059328avg:-197011865.6
Code
 $MyPC  = get-wmiobject Win32_ComputerSystem -cn $env:COMPUTERNAME | select @{name="RAM";Expression={"{0:N2}" -f($_.TotalPhysicalMemory/1gb).tostring("N0")}}, ` 
	NumberOfProcessors,NumberOfLogicalProcessors ,Name,Model,roles
$rpt = @()
$rpt += get-htmlopenpage 
$rpt += Get-HtmlContentOpen -HeaderText "Table With array in column"
$rpt += Get-HTMLContentTableAdvanced $MyPC
$rpt += Get-HtmlContentClose
$rpt += get-htmlclosepage 
Save-HTMLReport -ReportContent $rpt -ShowReport 
Tables displaying Arrays in Arrays Adding an array with another array in it, doesnt display correctly. Roles is an Array
Code Borrowed from here EnhancedHTML2 I would suggest for advanced tables use this module
Usage You can simply run your array through the enhancedHTML2 functions and add it to $RPT
ModelNameNumberOfLogicalProcessorsNumberOfProcessorsRAMroles
XPS 15 9575FOCUS8116LM_Workstation LM_Server NT

Code
 $Rpt = @()
$Rpt += get-htmlopenpage -TitleText "Data tables" 
$Rpt += Get-HTMLContentOpen
$Rpt += get-htmlcontentdatatable -ArrayOfObjects (Get-Command -Module ReportHTML | select Name,version,modulename,verb,noun) 
$Rpt += Get-HTMLContentClose
$Rpt += Get-HTMLClosePage
Save-HTMLReport -ReportContent $rpt -ShowReport 
NameVersionModuleNameVerbNoun
Connect-HTMLToAzure1.4.1.1ReportHTMLConnectHTMLToAzure
GenerateRandomColorScheme1.4.1.1ReportHTML
Get-Functions1.4.1.1ReportHTMLGetFunctions
Get-HTMLAnchor1.4.1.1ReportHTMLGetHTMLAnchor
Get-HTMLAnchorLink1.4.1.1ReportHTMLGetHTMLAnchorLink
Get-HTMLBarChart1.4.1.1ReportHTMLGetHTMLBarChart
Get-HTMLBarChartObject1.4.1.1ReportHTMLGetHTMLBarChartObject
Get-HTMLClosePage1.4.1.1ReportHTMLGetHTMLClosePage
Get-HTMLCodeBlock1.4.1.1ReportHTMLGetHTMLCodeBlock
Get-HTMLColorSchemes1.4.1.1ReportHTMLGetHTMLColorSchemes
Get-HTMLColumn1of21.4.1.1ReportHTMLGetHTMLColumn1of2
Get-HTMLColumn2of21.4.1.1ReportHTMLGetHTMLColumn2of2
Get-HTMLColumnClose1.4.1.1ReportHTMLGetHTMLColumnClose
Get-HTMLColumnOpen1.4.1.1ReportHTMLGetHTMLColumnOpen
Get-HTMLContentClose1.4.1.1ReportHTMLGetHTMLContentClose
Get-HTMLContentDataTable1.4.1.1ReportHTMLGetHTMLContentDataTable
Get-HTMLContentOpen1.4.1.1ReportHTMLGetHTMLContentOpen
Get-HTMLContentTable1.4.1.1ReportHTMLGetHTMLContentTable
Get-HTMLContentTableAdvanced1.4.1.1ReportHTMLGetHTMLContentTableAdvanced
Get-HTMLContentText1.4.1.1ReportHTMLGetHTMLContentText
Get-HTMLCSS1.4.1.1ReportHTMLGetHTMLCSS
Get-HTMLHeading1.4.1.1ReportHTMLGetHTMLHeading
Get-HTMLJavaScripts1.4.1.1ReportHTMLGetHTMLJavaScripts
Get-HTMLLogos1.4.1.1ReportHTMLGetHTMLLogos
Get-HTMLOpenPage1.4.1.1ReportHTMLGetHTMLOpenPage
Get-HTMLPieChart1.4.1.1ReportHTMLGetHTMLPieChart
Get-HTMLPieChartObject1.4.1.1ReportHTMLGetHTMLPieChartObject
Get-HTMLPowerShellSyntax1.4.1.1ReportHTMLGetHTMLPowerShellSyntax
Get-HTMLSpan1.4.1.1ReportHTMLGetHTMLSpan
Get-HTMLStackedChart1.4.1.1ReportHTMLGetHTMLStackedChart
Get-HTMLStackedChartObject1.4.1.1ReportHTMLGetHTMLStackedChartObject
Get-HTMLTabContentClose1.4.1.1ReportHTMLGetHTMLTabContentClose
Get-HTMLTabContentOpen1.4.1.1ReportHTMLGetHTMLTabContentOpen
Get-HTMLTabHeader1.4.1.1ReportHTMLGetHTMLTabHeader
Get-Parameters1.4.1.1ReportHTMLGetParameters
grc1.4.1.1ReportHTML
New-HTMLReportOptions1.4.1.1ReportHTMLNewHTMLReportOptions
Save-HTMLReport1.4.1.1ReportHTMLSaveHTMLReport
Save-HTMLToBlobStorage1.4.1.1ReportHTMLSaveHTMLToBlobStorage
Send-HTMLReport1.4.1.1ReportHTMLSendHTMLReport
Set-TableRowColor1.4.1.1ReportHTMLSetTableRowColor
NameVersionModuleNameVerbNoun
Code
 $arr = (Get-Command -Module ReportHTML | select Name,version,@{n='ModuleName';e={"URL0 1" + $_.ModuleName + "-" + $_.version + ".htmlURL0 2" + $_.ModuleName + "URL0 3"}} ,verb,noun)  #remove the spaces in the URL
$Rpt = @()
$Rpt += get-htmlopenpage -TitleText "Data tables" 
$Rpt += Get-HTMLContentOpen
$Rpt += get-htmlcontentdatatable -ArrayOfObjects $arr -HideFooter -PagingOptions '11,14,21,'
#$Rpt += get-htmlcontentdatatable -ArrayOfObjects $arr -HideFooter -PagingOptions ' ' #to show all use -PagingOptions ' ' 
$Rpt += Get-HTMLContentClose
$Rpt += Get-HTMLClosePage
Save-HTMLReport -ReportContent $rpt -ShowReport 
NameVersionModuleNameVerbNoun
Connect-HTMLToAzure1.4.1.1ReportHTMLConnectHTMLToAzure
GenerateRandomColorScheme1.4.1.1ReportHTML
Get-Functions1.4.1.1ReportHTMLGetFunctions
Get-HTMLAnchor1.4.1.1ReportHTMLGetHTMLAnchor
Get-HTMLAnchorLink1.4.1.1ReportHTMLGetHTMLAnchorLink
Get-HTMLBarChart1.4.1.1ReportHTMLGetHTMLBarChart
Get-HTMLBarChartObject1.4.1.1ReportHTMLGetHTMLBarChartObject
Get-HTMLClosePage1.4.1.1ReportHTMLGetHTMLClosePage
Get-HTMLCodeBlock1.4.1.1ReportHTMLGetHTMLCodeBlock
Get-HTMLColorSchemes1.4.1.1ReportHTMLGetHTMLColorSchemes
Get-HTMLColumn1of21.4.1.1ReportHTMLGetHTMLColumn1of2
Get-HTMLColumn2of21.4.1.1ReportHTMLGetHTMLColumn2of2
Get-HTMLColumnClose1.4.1.1ReportHTMLGetHTMLColumnClose
Get-HTMLColumnOpen1.4.1.1ReportHTMLGetHTMLColumnOpen
Get-HTMLContentClose1.4.1.1ReportHTMLGetHTMLContentClose
Get-HTMLContentDataTable1.4.1.1ReportHTMLGetHTMLContentDataTable
Get-HTMLContentOpen1.4.1.1ReportHTMLGetHTMLContentOpen
Get-HTMLContentTable1.4.1.1ReportHTMLGetHTMLContentTable
Get-HTMLContentTableAdvanced1.4.1.1ReportHTMLGetHTMLContentTableAdvanced
Get-HTMLContentText1.4.1.1ReportHTMLGetHTMLContentText
Get-HTMLCSS1.4.1.1ReportHTMLGetHTMLCSS
Get-HTMLHeading1.4.1.1ReportHTMLGetHTMLHeading
Get-HTMLJavaScripts1.4.1.1ReportHTMLGetHTMLJavaScripts
Get-HTMLLogos1.4.1.1ReportHTMLGetHTMLLogos
Get-HTMLOpenPage1.4.1.1ReportHTMLGetHTMLOpenPage
Get-HTMLPieChart1.4.1.1ReportHTMLGetHTMLPieChart
Get-HTMLPieChartObject1.4.1.1ReportHTMLGetHTMLPieChartObject
Get-HTMLPowerShellSyntax1.4.1.1ReportHTMLGetHTMLPowerShellSyntax
Get-HTMLSpan1.4.1.1ReportHTMLGetHTMLSpan
Get-HTMLStackedChart1.4.1.1ReportHTMLGetHTMLStackedChart
Get-HTMLStackedChartObject1.4.1.1ReportHTMLGetHTMLStackedChartObject
Get-HTMLTabContentClose1.4.1.1ReportHTMLGetHTMLTabContentClose
Get-HTMLTabContentOpen1.4.1.1ReportHTMLGetHTMLTabContentOpen
Get-HTMLTabHeader1.4.1.1ReportHTMLGetHTMLTabHeader
Get-Parameters1.4.1.1ReportHTMLGetParameters
grc1.4.1.1ReportHTML
New-HTMLReportOptions1.4.1.1ReportHTMLNewHTMLReportOptions
Save-HTMLReport1.4.1.1ReportHTMLSaveHTMLReport
Save-HTMLToBlobStorage1.4.1.1ReportHTMLSaveHTMLToBlobStorage
Send-HTMLReport1.4.1.1ReportHTMLSendHTMLReport
Set-TableRowColor1.4.1.1ReportHTMLSetTableRowColor

Alternating Row Colour How to set alternating row colour on an array
Code
 $SampleList = get-process | select -First 20
$rpt= @()
$rpt+= Get-HtmlContentOpen -HeaderText "Processes"
$SampleListColour = Set-TableRowColor $SampleList2 -Alternating
$rpt+= Get-HtmlContentTable -ArrayOfObjects $SampleListColour 
$rpt+= Get-HtmlContentClose 
NameIdPriorityClassHandlesFileVersionWorkingSetPrivateMemorySizePagedMemorySize
AdminService5308Normal39910.0.10011.1638423674881162444811624448
Adobe CEF Helper14168Idle4774.7.0.40033083392110997504110997504
Adobe Desktop Service16364Normal14034.7.0.40064102400276819968276819968
Adobe Premiere Pro57968Normal1219313.0.2.3853174272-1391063040-1391063040
AdobeIPCBroker18948Normal2785.4.0.57445235265617926561792
AdobeUpdateService5368Normal2114.7.0.400145408022282242228224
aesm_service4028Normal1732.0.101.44237179404826214402621440
AGMService5316Normal2026.2.0.190357580835512323551232
AGSService5332Normal3486.2.0.190753254451159045115904
ApplicationFrameHost21156Normal51610.0.17134.1 (WinBuild.160101.0800)174571523888742438887424
armsvc5292Normal1491.824.29.864483968014131201413120
atieclxx5092Normal34076.14.11.129062750726534348865343488
atiesrxx2664Normal1696.14.11.129091750414622721462272
atiw21064Normal1935.2.7.93178585648046084804608
audiodg14428Normal16410.0.17134.1 (WinBuild.160101.0800)1170636864552966455296
Calculator38276Normal50510.1811.1811.20001165109761591296015912960
CCLibrary13612Normal573.0.13.7348160667648667648
CCXProcess20284Normal572.5.2.11352256667648667648
CEPHtmlEngine10800Normal6399.2.1178176001309900813099008
CEPHtmlEngine43424Normal4659.2.1101335044510515245105152
How to add colours to tables You can apply colours to a row using logic.
Code
 # You must use single quotes here for the expression
$Red = '$this.Handles   -ge 800'
$Yellow = '$this.Handles   -gt 200 -or $this.Handles -lt 800'
$Green = '$this.Handles  -le 200'
 
# call the function and pass the array and color expressions
$ProcessColoured = Set-TableRowColor ($process | select -first 40) -Red $Red -Yellow $Yellow -Green $Green
 
# let's just see what the function did
$ProcessColoured | select name, Handles , RowColor 
 
$rpt = @()
$rpt += Get-HtmlContentOpen -HeaderText "Process with Row Colour Logic"
$rpt += Get-HtmlContentTable  ($ProcessColoured | Sort Handles) 
$rpt += Get-HtmlContentClose 
NameIdPriorityClassHandlesFileVersionWorkingSetPrivateMemorySizePagedMemorySize
CCLibrary13612Normal573.0.13.7348160667648667648
CCXProcess20284Normal572.5.2.11352256667648667648
chrome14340Normal14171.0.3578.98149094420439042043904
armsvc5292Normal1491.824.29.864483968014131201413120
audiodg14428Normal16410.0.17134.1 (WinBuild.160101.0800)1170636864552966455296
atiesrxx2664Normal1696.14.11.129091750414622721462272
aesm_service4028Normal1732.0.101.44237179404826214402621440
atiw21064Normal1935.2.7.93178585648046084804608
AGMService5316Normal2026.2.0.190357580835512323551232
AdobeUpdateService5368Normal2114.7.0.400145408022282242228224
chrome14568Normal27071.0.3578.9853411842002534420025344
chrome14668Normal27471.0.3578.9839566131216614604801661460480
chrome14612Normal27571.0.3578.98167534592320643072320643072
chrome6752Idle27571.0.3578.98295280646999654469996544
chrome14576Normal27671.0.3578.98578846727026278470262784
chrome14552Normal27671.0.3578.98314245125085184050851840
chrome14680Normal27671.0.3578.98237404165337907253379072
chrome14544Normal27671.0.3578.98162119686995148869951488
chrome14652Normal27671.0.3578.98526376965913395259133952
chrome14660Normal27671.0.3578.9849766402343321623433216
chrome14624Normal27671.0.3578.98345907204301619243016192
AdobeIPCBroker18948Normal2785.4.0.57445235265617926561792
chrome5108Idle27971.0.3578.98369786889929113699291136
chrome14688Normal28071.0.3578.98145653763435724834357248
chrome14636Normal31371.0.3578.98431349766963200069632000
chrome9356Idle31771.0.3578.9869603328196800512196800512
chrome3688Idle32371.0.3578.9836151296137203712137203712
AGSService5332Normal3486.2.0.190753254451159045115904
CEPHtmlEngine52852Normal3959.2.1213319683604070436040704
AdminService5308Normal39910.0.10011.1638423674881162444811624448
CEPHtmlEngine43424Normal4659.2.1101335044510515245105152
Adobe CEF Helper14168Idle4774.7.0.40033083392110997504110997504
Calculator38276Normal50510.1811.1811.20001165109761591296015912960
ApplicationFrameHost21156Normal51610.0.17134.1 (WinBuild.160101.0800)174571523888742438887424
chrome13920Normal62271.0.3578.98163020823306242330624
CEPHtmlEngine10800Normal6399.2.1178176001309900813099008
Adobe Desktop Service16364Normal14034.7.0.40064102400276819968276819968
atieclxx5092Normal34076.14.11.129062750726534348865343488
chrome14008Normal554971.0.3578.98367177728422322176422322176
Adobe Premiere Pro57968Normal1219313.0.2.3853174272-1391063040-1391063040

Chart JS Rather than reinvent charting and because we wanted to be able to generate charts in Azure Automation I used Chart JS
Chart JS Project Chart JS Site Simple HTML5 charts using the canvas element.
AWESOME Tool If you want to see how to construct charts in ChartJS This is so helpful Https://codepen.io/natenorberg/pen/WwqRar/
Possiblities I will explain a few example and how the chart bject works for rapid creation however you can always create your own chart code and add it
Simple Example
 $Process = Get-Process
$PieProcess = $process | group ProcessName | sort count -Descending |select -First 5

$PieObject = Get-HTMLPieChartObject

$rpt = @()
$rpt += Get-HTMLOpenpage
	$rpt += Get-HTMLContentOpen	 -HeaderText "Simple Example"
		$rpt += Get-HTMLPieChart -ChartObject $PieObject -DataSet $PieProcess 
	$rpt += Get-HTMLContentClose
$rpt += Get-HTMLClosePage

save-htmlreport -reportcontent $rpt -showreport  
Advanced Example
 $Process = Get-Process
$PieProcess2 = $process | group ProcessName | sort count -Descending |select -First 5

#basic Properties 
$PieObject2 = Get-HTMLPieChartObject
$PieObject2.Title = "Top Processes"
$PieObject2.Size.Height =250
$PieObject2.Size.width =250
$PieObject2.ChartStyle.ChartType = 'doughnut'

#These file exist in the module directoy, There are 4 schemes by default
$PieObject2.ChartStyle.ColorSchemeName = "ColorScheme4"
#There are 8 generated schemes, randomly generated at runtime 
$PieObject2.ChartStyle.ColorSchemeName = "Generated8"
#you can also ask for a random scheme.  Which also happens if you have too many records for the scheme
$PieObject2.ChartStyle.ColorSchemeName = 'Random'

#Data defintion you can reference any column from name and value from the  dataset.  
#Name and Count are the default to work with the Group function.
$PieObject2.DataDefinition.DataNameColumnName ='Name'
$PieObject2.DataDefinition.DataValueColumnName = 'Count'

$rpt = @()
$rpt += Get-HTMLopenpage -TitleText Title
	$rpt += Get-HTMLContentOpen -HeaderText "Advanced Example"
		$rpt += Get-HTMLPieChart -ChartObject $PieObject2 -DataSet $PieProcess 
	$rpt += Get-HTMLContentClose
$rpt += Get-HTMLclosepage

save-htmlreport -reportcontent $rpt -showreport  
Bar Chart Example
 $Process = Get-Process
$BarProcess = $process | group Name | sort count -Descending |select -First 10

$ChartExample3 = @()
$ChartExample3 += Get-HTMLContentOpen -HeaderText "Simple Bar Example"
$BarObject = Get-HTMLBarChartObject
$ChartExample3 += Get-HTMLBarChart -ChartObject $BarObject -DataSet $BarProcess 
$ChartExample3 += Get-HTMLContentClose

save-htmlreport -reportcontent $rpt -showreport  

Scripts There are a couple of scripts that are located in the module directory.
These scripts are loaded when you run Get-HTMLopenpage.
you can use Get-HTMLJavaScripts to retrieve them . What this means though
is that you can simply drop your own javascripts into the directory,
or use the function to point at another directory and load custom code.

HTML You can use any html tags and code and add it directy to the Report array
Tags in text you can use things like < B R >
for example in a string for a break
Convertto-advhtml you can trying using this cmdlet ConvertTo-AdvHTML'
Adding it to the array just keep adding it to $rpt += $newcode
Get-HTMLCodeBlock To create this help file I just created get-htmlcodeblock so I could use the < PRE > HTML tag.
I decided that I would pass the code block into the function and choose a style and wrap the code in the tags
I had to add a CSS style to the CSS file to support this function
PowerShell Function
 Function Get-HTMLCodeBlock
{
	[CmdletBinding()]
	Param 
	(
		[Parameter(Mandatory=$true)]
        [String]
        $Code,
		[Parameter(Mandatory=$false)]
        [String]
        $Style = 'PowerShell'
	)
	$CodeBlock = @()
	switch ($Style) {
		'PowerShell'
		{
			$CodeBlock += '
'
		}
		'othercodestyleneedsACSSStyle'
		{
			$CodeBlock += '
'
		}
		default 
		{
			$CodeBlock += '
'
		}
	}
	
	$CodeBlock  += $Code
	$CodeBlock  += '
' [string]$CodeBlock = $CodeBlock Write-Output $CodeBlock }
PowerShell Code
 
    $SampleCode=@'
    $Tab = 'JavaScript'
      $rpt += get-htmltabcontentopen -TabName $Tab -tabheading ' '
            $rpt += Get-HTMLContentOpen -HeaderText 'The Basics' 
                  $rpt += Get-HTMLContentText -Heading "Scripts" -detail "There are a couple of scripts that are located in the module directory"
            $rpt += Get-HTMLContentClose
      $rpt += get-htmltabcontentclose
    '@

    $rpt += Get-HTMLContentText -Heading "PowerShell Function" -detail (get-htmlcodeblock -style powershell -code $SampleCode)

 
Output
 $Tab = 'JavaScript'
  $rpt += get-htmltabcontentopen -TabName $Tab -tabheading ' '
        $rpt += Get-HTMLContentOpen -HeaderText 'The Basics' 
              $rpt += Get-HTMLContentText -Heading "Scripts" -detail "There are a couple of scripts that are located in the module directory"
        $rpt += Get-HTMLContentClose
  $rpt += get-htmltabcontentclose 

Back To Function List Back To Function List Back To Function List Back To Function List Back To Function List Back To Function List
Name Connect-HTMLToAzure
Synopsis Connect-HTMLToAzure [[-connectionName] ] []
Remarks Get-Help cannot find the Help files for this cmdlet on this computer. It is displaying only partial help. -- To download and install Help files for the module that includes this cmdlet, use Update-Help.
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
connectionNameObjectFalseFalse
InformationActionActionPreferenceFalseFalse
InformationVariableStringFalseFalse
PipelineVariableStringFalseFalse
Back To Function List
Name GenerateRandomColorScheme
Synopsis Generate a colour scheme
Remarks
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
NumberOfSchemesInt32FalseFalse
ColorSwingObjectFalseFalse
InformationActionActionPreferenceFalseFalse
InformationVariableStringFalseFalse
PipelineVariableStringFalseFalse
Back To Function List
Name Get-Functions
Synopsis Get-Functions [[-pattern] ] [[-path] ] [-Recurse]
Remarks Get-Help cannot find the Help files for this cmdlet on this computer. It is displaying only partial help. -- To download and install Help files for the module that includes this cmdlet, use Update-Help.
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
patternObjectFalseFalse
pathObjectFalseFalse
RecurseBooleanFalseFalse
Back To Function List
Name Get-HTMLAnchor
Synopsis creates an Anchor
Remarks
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
AnchorNameStringTrueFalse
InformationActionActionPreferenceFalseFalse
InformationVariableStringFalseFalse
PipelineVariableStringFalseFalse
Back To Function List
Name Get-HTMLAnchorLink
Synopsis creates Hyperlink for an Anchor
Remarks
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
AnchorNameStringFalseFalse
AnchorTextStringTrueFalse
InformationActionActionPreferenceFalseFalse
InformationVariableStringFalseFalse
PipelineVariableStringFalseFalse
Back To Function List
Name Get-HTMLBarChart
Synopsis
Remarks
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
ChartObjectObjectTrueFalse
DataSetArrayTrueFalse
OptionsObjectFalseFalse
InformationActionActionPreferenceFalseFalse
InformationVariableStringFalseFalse
PipelineVariableStringFalseFalse
Back To Function List
Name Get-HTMLBarChartObject
Synopsis create a Bar chart object for use with Get-HTMLBarChart
Remarks
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
ColorSchemeObjectFalseFalse
InformationActionActionPreferenceFalseFalse
InformationVariableStringFalseFalse
PipelineVariableStringFalseFalse
Back To Function List
Name Get-HTMLClosePage
Synopsis Get's the closing segment for the HTML
Remarks
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
FooterTextStringFalseFalse
InformationActionActionPreferenceFalseFalse
InformationVariableStringFalseFalse
PipelineVariableStringFalseFalse
Back To Function List
Name Get-HTMLCodeBlock
Synopsis Get-HTMLCodeBlock [-Code] [[-Style] ] []
Remarks Get-Help cannot find the Help files for this cmdlet on this computer. It is displaying only partial help. -- To download and install Help files for the module that includes this cmdlet, use Update-Help.
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
CodeStringTrueFalse
StyleStringFalseFalse
InformationActionActionPreferenceFalseFalse
InformationVariableStringFalseFalse
PipelineVariableStringFalseFalse
Back To Function List
Name Get-HTMLColorSchemes
Synopsis Get-HTMLColorSchemes [[-SchemePath] ] []
Remarks Get-Help cannot find the Help files for this cmdlet on this computer. It is displaying only partial help. -- To download and install Help files for the module that includes this cmdlet, use Update-Help.
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
SchemePathStringFalseFalse
InformationActionActionPreferenceFalseFalse
InformationVariableStringFalseFalse
PipelineVariableStringFalseFalse
Back To Function List
Name Get-HTMLColumn1of2
Synopsis adds a row colour field to the array of object for processing with htmltable
Remarks
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
InformationActionActionPreferenceFalseFalse
InformationVariableStringFalseFalse
PipelineVariableStringFalseFalse
Back To Function List
Name Get-HTMLColumn2of2
Synopsis adds a row colour field to the array of object for processing with htmltable
Remarks
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
InformationActionActionPreferenceFalseFalse
InformationVariableStringFalseFalse
PipelineVariableStringFalseFalse
Back To Function List
Name Get-HTMLColumnClose
Synopsis Closing Div Tag
Remarks
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
InformationActionActionPreferenceFalseFalse
InformationVariableStringFalseFalse
PipelineVariableStringFalseFalse
Back To Function List
Name Get-HTMLColumnOpen
Synopsis Dynamic Column Creation
Remarks
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
ColumnNumberInt32TrueFalse
ColumnCountInt32TrueFalse
InformationActionActionPreferenceFalseFalse
InformationVariableStringFalseFalse
PipelineVariableStringFalseFalse
Back To Function List
Name Get-HTMLContentClose
Synopsis Closes an HTML section
Remarks
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
InformationActionActionPreferenceFalseFalse
InformationVariableStringFalseFalse
PipelineVariableStringFalseFalse
Back To Function List
Name Get-HTMLContentDataTable
Synopsis Creates an HTML 5 Data table from an array of objects
Remarks
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
ArrayOfObjectsArrayTrueTrue
DisablePagingBooleanFalseFalse
PagingOptionsStringFalseFalse
DisableOrderingBooleanFalseFalse
DisableInfoBooleanFalseFalse
HideFooterBooleanFalseFalse
InformationActionActionPreferenceFalseFalse
InformationVariableStringFalseFalse
PipelineVariableStringFalseFalse
Back To Function List
Name Get-HTMLContentOpen
Synopsis Creates a section in HTML
Remarks
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
HeaderTextStringFalseFalse
IsHiddenBooleanFalseFalse
AnchorStringFalseFalse
BackgroundShadeInt32FalseFalse
InformationActionActionPreferenceFalseFalse
InformationVariableStringFalseFalse
PipelineVariableStringFalseFalse
Back To Function List
Name Get-HTMLContentTable
Synopsis Creates an HTML table from an array of objects
Remarks
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
ArrayOfObjectsArrayFalseFalse
GroupByStringFalseFalse
ColumnCountsArrayFalseFalse
FixedBooleanFalseFalse
ColumnAveragesArrayFalseFalse
NoSortableHeaderBooleanFalseFalse
ColumnTotalsArrayFalseFalse
Back To Function List
Name Get-HTMLContentTableAdvanced
Synopsis Code borrowed from https://www.powershellgallery.com/packages/EnhancedHTML2
Remarks
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
ArrayOfObjectsArrayTrueTrue
InformationActionActionPreferenceFalseFalse
InformationVariableStringFalseFalse
PipelineVariableStringFalseFalse
Back To Function List
Name Get-HTMLContentText
Synopsis Creates an HTML entry with heading and detail
Remarks
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
HeadingStringFalseFalse
DetailStringFalseFalse
InformationActionActionPreferenceFalseFalse
InformationVariableStringFalseFalse
PipelineVariableStringFalseFalse
Back To Function List
Name Get-HTMLCSS
Synopsis Get's HTML Cascading Style Sheet
Remarks
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
CSSPathStringFalseFalse
CSSNameStringFalseFalse
InformationActionActionPreferenceFalseFalse
InformationVariableStringFalseFalse
PipelineVariableStringFalseFalse
Back To Function List
Name Get-HTMLHeading
Synopsis Get-HTMLHeading [[-headingText] ] [[-headerSize] ]
Remarks Get-Help cannot find the Help files for this cmdlet on this computer. It is displaying only partial help. -- To download and install Help files for the module that includes this cmdlet, use Update-Help.
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
headingTextStringFalseFalse
headerSizeInt32FalseFalse
Back To Function List
Name Get-HTMLJavaScripts
Synopsis Get's Script File from module directory
Remarks
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
ScriptPathStringFalseFalse
InformationActionActionPreferenceFalseFalse
InformationVariableStringFalseFalse
PipelineVariableStringFalseFalse
Back To Function List
Name Get-HTMLLogos
Synopsis Get Base64 HTML
Remarks
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
LogoPathStringFalseFalse
InformationActionActionPreferenceFalseFalse
InformationVariableStringFalseFalse
PipelineVariableStringFalseFalse
Back To Function List
Name Get-HTMLOpenPage
Synopsis Get's HTML for the header of the HTML report
Remarks
Examples
ParameterSetNameTypeIsMandatoryPipeline
explicit
TitleTextStringFalseFalse
CSSPathStringFalseFalse
CSSNameStringFalseFalse
ScriptPathStringFalseFalse
ColorSchemePathStringFalseFalse
LogoPathStringFalseFalse
LeftLogoNameStringFalseFalse
RightLogoNameStringFalseFalse
LeftLogoStringStringFalseFalse
RightLogoStringStringFalseFalse
HideLogosBooleanFalseFalse
HideTitleBooleanFalseFalse
NoScriptBooleanFalseFalse
PrimaryColorHexStringFalseFalse
InformationActionActionPreferenceFalseFalse
InformationVariableStringFalseFalse
PipelineVariableStringFalseFalse
options
TitleTextStringFalseFalse
HideLogosBooleanFalseFalse
HideTitleBooleanFalseFalse
NoScriptBooleanFalseFalse
OptionsPSObjectFalseFalse
InformationActionActionPreferenceFalseFalse
InformationVariableStringFalseFalse
PipelineVariableStringFalseFalse
Back To Function List
Name Get-HTMLPieChart
Synopsis
Remarks
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
ChartObjectObjectTrueFalse
DataSetArrayTrueFalse
OptionsObjectFalseFalse
InformationActionActionPreferenceFalseFalse
InformationVariableStringFalseFalse
PipelineVariableStringFalseFalse
Back To Function List
Name Get-HTMLPieChartObject
Synopsis create a Bar chart object for use with Get-HTMLBarChart
Remarks
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
ChartTypeStringFalseFalse
ColorSchemeObjectFalseFalse
InformationActionActionPreferenceFalseFalse
InformationVariableStringFalseFalse
PipelineVariableStringFalseFalse
Back To Function List
Name Get-HTMLPowerShellSyntax
Synopsis Get-HTMLPowerShellSyntax [[-PowerShellFilePath] ] []
Remarks Get-Help cannot find the Help files for this cmdlet on this computer. It is displaying only partial help. -- To download and install Help files for the module that includes this cmdlet, use Update-Help.
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
PowerShellFilePathObjectFalseFalse
InformationActionActionPreferenceFalseFalse
InformationVariableStringFalseFalse
PipelineVariableStringFalseFalse
Back To Function List
Name Get-HTMLReportHelp
Synopsis Get-HTMLReportHelp [-GenerateReport]
Remarks None
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
GenerateReportBooleanFalseFalse
Back To Function List
Name Get-HTMLSpan
Synopsis Get-HTMLSpan [[-block] ] [[-tokenColor] ]
Remarks Get-Help cannot find the Help files for this cmdlet on this computer. It is displaying only partial help. -- To download and install Help files for the module that includes this cmdlet, use Update-Help.
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
blockObjectFalseFalse
tokenColorObjectFalseFalse
Back To Function List
Name Get-HTMLStackedChart
Synopsis
Remarks
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
ChartObjectObjectTrueFalse
DataSetArrayTrueFalse
OptionsObjectFalseFalse
InformationActionActionPreferenceFalseFalse
InformationVariableStringFalseFalse
PipelineVariableStringFalseFalse
Back To Function List
Name Get-HTMLStackedChartObject
Synopsis create a Stacked chart object for use with Get-HTMLStackedChart
Remarks
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
ColorSchemeObjectFalseFalse
DataSetArrayXLabelsStringFalseFalse
DataSetArrayNameStringFalseFalse
DataSetArrayDataStringFalseFalse
DataSetArrayDataColumnStringFalseFalse
InformationActionActionPreferenceFalseFalse
InformationVariableStringFalseFalse
PipelineVariableStringFalseFalse
Back To Function List Back To Function List
Name Get-HTMLTabContentOpen
Synopsis Get-HTMLTabContentOpen [-TabName] [-TabHeading] []
Remarks Get-Help cannot find the Help files for this cmdlet on this computer. It is displaying only partial help. -- To download and install Help files for the module that includes this cmdlet, use Update-Help.
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
TabNameStringTrueFalse
TabHeadingStringTrueFalse
InformationActionActionPreferenceFalseFalse
InformationVariableStringFalseFalse
PipelineVariableStringFalseFalse
Back To Function List
Name Get-HTMLTabHeader
Synopsis Get-HTMLTabHeader [-TabNames] []
Remarks Get-Help cannot find the Help files for this cmdlet on this computer. It is displaying only partial help. -- To download and install Help files for the module that includes this cmdlet, use Update-Help.
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
TabNamesArrayTrueFalse
InformationActionActionPreferenceFalseFalse
InformationVariableStringFalseFalse
PipelineVariableStringFalseFalse
Back To Function List
Name Get-Parameters
Synopsis Get-Parameters [[-Cmdlet] ] [-ShowCommon] [-Full]
Remarks Get-Help cannot find the Help files for this cmdlet on this computer. It is displaying only partial help. -- To download and install Help files for the module that includes this cmdlet, use Update-Help.
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
CmdletObjectFalseFalse
ShowCommonBooleanFalseFalse
FullBooleanFalseFalse
Back To Function List
grc
Name grc
Synopsis Random colour Function
Remarks
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
MinInt32FalseFalse
maxInt32FalseFalse
Back To Function List
in
Name In
Synopsis A convenience function that executes a script from a specified path.
Remarks
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
pathObjectFalseFalse
executeScriptBlockFalseFalse
Back To Function List
Name New-HTMLReportOptions
Synopsis New-HTMLReportOptions [-LogoSources ] [-ColorSchemes ] [-CSSName ] [-CSSPath ] [-ScriptPath ] [-ColorSchemePath ] [-LogoPath ] [-ReportPath ] [] New-HTMLReportOptions [-LogoSources ] [-ColorSchemes ] [-CSSName ] [-CSSPath ] [-ScriptPath ] [-ColorSchemePath ] [-LogoPath ] [-SaveOptionsPath ] [-ReportPath ] []
Remarks Get-Help cannot find the Help files for this cmdlet on this computer. It is displaying only partial help. -- To download and install Help files for the module that includes this cmdlet, use Update-Help.
Examples
ParameterSetNameTypeIsMandatoryPipeline
NoSave
LogoSourcesHashtableFalseFalse
ColorSchemesHashtableFalseFalse
CSSNameObjectFalseFalse
CSSPathStringFalseFalse
ScriptPathStringFalseFalse
ColorSchemePathStringFalseFalse
LogoPathStringFalseFalse
ReportPathStringFalseFalse
InformationActionActionPreferenceFalseFalse
InformationVariableStringFalseFalse
PipelineVariableStringFalseFalse
Save
LogoSourcesHashtableFalseFalse
ColorSchemesHashtableFalseFalse
CSSNameObjectFalseFalse
CSSPathStringFalseFalse
ScriptPathStringFalseFalse
ColorSchemePathStringFalseFalse
LogoPathStringFalseFalse
SaveOptionsPathStringFalseFalse
ReportPathStringFalseFalse
InformationActionActionPreferenceFalseFalse
InformationVariableStringFalseFalse
PipelineVariableStringFalseFalse
Back To Function List
Name Save-HTMLReport
Synopsis generation of report and invokes the file to open
Remarks
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
ReportNameStringFalseFalse
ReportPathStringFalseFalse
ReportContentArrayTrueFalse
ShowReportBooleanFalseFalse
InformationActionActionPreferenceFalseFalse
InformationVariableStringFalseFalse
PipelineVariableStringFalseFalse
Back To Function List
Name Save-HTMLToBlobStorage
Synopsis generation of report and invokes the file to open
Remarks
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
ReportContentArrayTrueFalse
resourceGroupNameStringTrueFalse
storageAccountNameStringTrueFalse
storageContainerNameStringTrueFalse
ReportPrefixStringFalseFalse
InformationActionActionPreferenceFalseFalse
InformationVariableStringFalseFalse
PipelineVariableStringFalseFalse
Back To Function List
Name Send-HTMLReport
Synopsis rudimentary send report via email function. Suggest finding more comprehensive function it must already exist :)
Remarks
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
ReportNameStringFalseFalse
ToStringFalseFalse
FromStringFalseFalse
SMTPServerStringFalseFalse
SMTPPortStringFalseFalse
BodyStringFalseFalse
RptfileObjectFalseFalse
CredentialsPSCredentialFalseFalse
StoredReportHashtableFalseFalse
InformationActionActionPreferenceFalseFalse
InformationVariableStringFalseFalse
PipelineVariableStringFalseFalse
Back To Function List
Name Set-TableRowColor
Synopsis adds a row colour field to the array of object for processing with htmltable
Remarks
Examples
ParameterSetNameTypeIsMandatoryPipeline
Default
ArrayOfObjectsObject[]FalseFalse
GreenStringFalseFalse
YellowStringFalseFalse
RedStringFalseFalse
AlternatingBooleanFalseFalse
InformationActionActionPreferenceFalseFalse
InformationVariableStringFalseFalse
PipelineVariableStringFalseFalse